package com.zhilei.deepseekdoctor.service;

import com.zhilei.deepseekdoctor.enums.ChatTypeEnum;
import com.zhilei.deepseekdoctor.pojo.ChatEntity;
import com.zhilei.deepseekdoctor.pojo.ChatRecord;
import org.springframework.ai.chat.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.web.bind.annotation.RequestParam;
import reactor.core.publisher.Flux;

import java.util.List;

public interface OllamaService {

    /**
     * 测试引入chat
     *
     * @param msg 提示词对象
     * @return
     */
    public String aiOllamaChat(String msg);

    /**
     * 测试引入chat
     *
     * @param prompt 提示词对象
     * @return
     */
    public String aiOllamaPromptChat(Prompt prompt);

    /**
     * ollama流式对话
     *
     * @param msg 提示词对象
     * @return
     */
    public Flux<ChatResponse> aiOllamaChatStream(String msg);

    /**
     * ollama流式对话,提取提示词
     *
     * @param msg 提示词对象
     * @return
     */
    public List<String> aiOllamaChatstreamCount(String msg);

    /**
     * ollama流式对话,配合SSE
     *
     * @param chat 用户名
     * @return
     */
    public void aiV3OllamaChatstreamCount(ChatEntity chat);

    /**
     * 当前的沟通的对象查询
     *
     * @param who
     * @return
     */
    public List<ChatRecord> getRecords(String who);

    /**
     * 保存聊天记录
     *
     * @param userName 用户名
     * @param message 消息
     * @param chatType 是谁发的
     * @return
     */
    public void saveChatRecord(String userName, String message, ChatTypeEnum chatType);

}
